package Classes;


import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.io.*;

public interface MInterface extends Remote {
    public String getCurrentTime() throws RemoteException;
    public String getCurrentDate() throws RemoteException;
    public String getDBDate() throws RemoteException;
    public String getCurrDate() throws RemoteException;
    public String getCurrYear() throws RemoteException;
    public String getYear() throws RemoteException;

    public boolean checkUserStatus(String username) throws RemoteException;
    public void clientActivity(String username, String activity) throws RemoteException;

    public boolean login(String username, String password, boolean status) throws RemoteException ;
    public void logout(String username) throws RemoteException;
    public User getUser(String username) throws RemoteException;
    public boolean getPassword(String username, String password) throws RemoteException;
    
    public ArrayList<Object> getList(String table)throws Exception;
    public ArrayList<Object> getList2(String table, String a, String b)throws Exception;
    
    public ArrayList<Object> getList3(String table, String a, String b)throws Exception;
    public Object get(String table, String a, String b)throws Exception;
    public boolean add(String table, Object a, String clvl, User aa)throws Exception;     
    /*april30*/
    public boolean edit(String table, Object a, User aa) throws Exception;
    //end
    public String getRealYear() throws Exception;    
    public String getPrevYear() throws Exception;  
   
    public int getToday() throws Exception;
    public int getPast() throws Exception;
    public int getNext() throws Exception;
    
    public String addEvent(Event ee, User a) throws Exception;    
    
    public String getEndSy(String end) throws Exception;
    public String getStartSy(String start) throws Exception;
    
    
    public String addGrade(double a1, int a2, int a3, String a4, String a5)throws RemoteException;
    public String editGrade(double a1, int a2, int a3,String a4, String a5)throws RemoteException;
    public String addAttendance(String a, int a1, int a2, int a3, int a4, String a5) throws RemoteException;
    public String editAttendance(String a, int a1, int a2, int a3, int a4, String a5)throws RemoteException;
    public ArrayList<Object> getList4(String table, String a)throws Exception;
    
    //Summer
    public ArrayList<Object> SSList() throws Exception;
    public ArrayList<Object> SumList(String sy) throws Exception;
    public ArrayList<Object> SSSList(String a) throws Exception; 
    public Object SumSub(String a, String b) throws Exception;
    public String getSummerSave(Summer sum, String sy, ArrayList<Object> subList, User a) throws Exception;
    public String editManage(String table, String Orig, Object o, User a) throws Exception;
    public String SumSubAdd(String nSub) throws Exception;
    public String SumSubjectAdd(ArrayList<Object> nSub, String sSY) throws Exception;
    public ArrayList<Object> cbList(String t) throws Exception;
    
    public Event getEvent(String event) throws Exception;
    public SchoolYear getDays(String days) throws Exception;
    
    //Class Level
    public ArrayList<ClassLevel> listLevel() throws Exception;
}
